/*
 * $Id: ProgrammePlanningItem.java 3 2011-12-26 07:48:43Z forwardly@hotmail.com $
 * 
 * Copyright (c) 2001-2008 Accentrix Company Limited. All Rights Reserved.
 * 
 * Accentrix Company Limited. ("Accentrix") retains copyright on all text, source
 * and binary code contained in this software and documentation. Accentrix grants
 * Licensee a limited license to use this software, provided that this copyright
 * notice and license appear on all copies of the software. The software source
 * code is provided for reference purposes only and may not be copied, modified 
 * or distributed.
 * 
 * THIS SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS," WITHOUT ANY WARRANTY OF
 * ANY KIND UNLESS A SEPARATE WARRANTIES IS PURCHASED FROM ACCENTRIX AND REMAINS
 * VALID.  ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
 * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. ACCENTRIX SHALL NOT BE LIABLE
 * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING OR MODIFYING THE
 * SOFTWARE OR ITS DERIVATIVES.
 * 
 * IN NO EVENT WILL ACCENTRIX BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES,
 * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE
 * USE OF OR INABILITY TO USE SOFTWARE, EVEN IF ACCENTRIX HAS BEEN ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGES.
 */
package com.lightsaber.trade.as.entity.planning;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import com.lightsaber.trade.core.entity.BaseEntity;

@Entity
@Table(name = "MHPP_PROGRAMME_PLANNING_ITEM")
public class ProgrammePlanningItem extends BaseEntity {

    private static final long serialVersionUID = -4249732116572735051L;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "LEVEL_2_PLANNING_ID", updatable = false)
    private Level2Planning level2Planning;

    @Column(name = "CODE", nullable = false, length = 100)
    private String code;

    @Column(name = "OPERATING_CAMPUS", nullable = false, length = 100)
    private String operatingCampus;

    @Column(name = "OPERATING_UNIT", nullable = false)
    private String operatingUnit;

    @OneToMany(mappedBy = "programmePlanningItem", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
    private List<Level2BreakDown> level2BreakDownList;

    @Column(name = "PLAN_YEAR", nullable = false)
    private Integer planYear;

    @Column(name = "STUDY_YEAR", nullable = false)
    private Integer studyYear;

    @Column(name = "PLANNED_PLACES_NEW", nullable = false)
    private Integer plannedPlacesNew;
    @Column(name = "PLANNED_PLACES_NEW_ACTUAL", nullable = false)
    private Integer plannedPlacesNewActual;

    @Column(name = "PLANNED_PLACES_PROG", nullable = false)
    private Integer plannedPlacesProg;
    @Column(name = "PLANNED_PLACES_PROG_ACTUAL", nullable = false)
    private Integer plannedPlacesProgActual;

    public Level2Planning getLevel2Planning() {
        return level2Planning;
    }

    public void setLevel2Planning(final Level2Planning level2Planning) {
        this.level2Planning = level2Planning;
    }

    public Integer getPlanYear() {
        return planYear;
    }

    public void setPlanYear(final Integer planYear) {
        this.planYear = planYear;
    }

    public Integer getStudyYear() {
        return studyYear;
    }

    public void setStudyYear(final Integer studyYear) {
        this.studyYear = studyYear;
    }

    public Integer getPlannedPlacesNewActual() {
        return plannedPlacesNewActual;
    }

    public void setPlannedPlacesNewActual(final Integer plannedPlacesNewActual) {
        this.plannedPlacesNewActual = plannedPlacesNewActual;
    }

    public Integer getPlannedPlacesProgActual() {
        return plannedPlacesProgActual;
    }

    public void setPlannedPlacesProgActual(final Integer plannedPlacesProgActual) {
        this.plannedPlacesProgActual = plannedPlacesProgActual;
    }

    public Integer getPlannedPlacesNew() {
        return plannedPlacesNew;
    }

    public void setPlannedPlacesNew(final Integer plannedPlacesNew) {
        this.plannedPlacesNew = plannedPlacesNew;
    }

    public Integer getPlannedPlacesProg() {
        return plannedPlacesProg;
    }

    public void setPlannedPlacesProg(final Integer plannedPlacesProg) {
        this.plannedPlacesProg = plannedPlacesProg;
    }

    public List<Level2BreakDown> getLevel2BreakDownList() {
        return level2BreakDownList;
    }

    public void setLevel2BreakDownList(final List<Level2BreakDown> level2BreakDownList) {
        this.level2BreakDownList = level2BreakDownList;
    }

    public String getCode() {
        return code;
    }

    public void setCode(final String code) {
        this.code = code;
    }

    public String getOperatingCampus() {
        return operatingCampus;
    }

    public void setOperatingCampus(final String operatingCampus) {
        this.operatingCampus = operatingCampus;
    }

    public String getOperatingUnit() {
        return operatingUnit;
    }

    public void setOperatingUnit(final String operatingUnit) {
        this.operatingUnit = operatingUnit;
    }

}
